This notebook demonstrates the capabilities of the GAP implementation of the polynomial-time algorithm to prove hyperbolicity of a finitely presented group described in the paper Polynomial-time proofs that groups are hyperbolic.
LoadPackage("walrus");
#I method installed for Size matches more than one declaration #I method installed for Size matches more than one declaration
true
The command TriangleGroup
takes three parameters and creates a pregroup presentation of the $(p,q,r)-$triangle group
triangle := TriangleGroup(2,3,7);
<pregroup presentation with 3 generators and 1 relators>
Whenever $\frac{1}{p} + \frac{1}{q} + \frac{1}{r} < 1$, a triangle group is hyperbolic:
IsHyperbolic(triangle, 1/6);
true
The command TriangleCommutatorQuotient(m,n)
creates a quotient of a $(2,3,m)-$triangle group by the commutator of the two generators raised to the $n-$th power, i.e.
cf Theorem 9.5
According to Theorem 9.5 for $m=13$ and $n=7$, the RSymTest
procedure succeeds:
thm95 := TriangleCommutatorQuotient(13, 7);;
IsHyperbolic(thm95, 1/10);
true
Whereas the current implementation of RSymTest
in GAP does not succeed for $m=7$ and $n=19$, because it does not implement level 2.
thm95_2 := TriangleCommutatorQuotient(7, 19);;
IsHyperbolic(thm95_2, 1/10);
[ fail, [ [ 1, 0, 0, 0 ], [ 1, 4, 1, 31/210 ], [ 3, 7, 2, 2/15 ], [ 2, 6, 2, 23/420 ], [ 1, 8, 2, 31/105 ], [ 1, 6, 2, 29/210 ], [ 2, 8, 2, 19/420 ], [ 1, 10, 3, 2/7 ], [ 3, 9, 3, 13/105 ], [ 3, 11, 3, 59/210 ], [ 2, 10, 3, 17/84 ], [ 1, 12, 3, 31/70 ], [ 2, 12, 3, 27/140 ], [ 3, 13, 4, 19/70 ], [ 1, 14, 4, 13/30 ] ], [ 1, 10, 3, 2/7 ] ]
F := FreeGroup("x", "y");;
AssignGeneratorVariables(F);;
rred := [ y^3 ];;
rgreen := [ x^4, (x*y)^4 ];;
IsHyperbolic(F, rred, rgreen, 1/10);
#I Assigned the global variables [ x, y ]
[ fail, [ [ 1, 0, 0, 0 ], [ 2, 1, 1, 13/120 ], [ 1, 2, 2, 13/60 ], [ 2, 3, 3, 13/40 ], [ 1, 4, 4, 13/30 ] ], [ 2, 3, 3, 13/40 ] ]
F := FreeGroup("x", "y", "t");;
AssignGeneratorVariables(F);;
rred := [y^3, x^2 * t];;
rgreen := [t^2, (x*y)^4];;
IsHyperbolic(F, rred, rgreen, 1/10);
#I Global variable `x' is already defined and will be overwritten #I Global variable `y' is already defined and will be overwritten #I Assigned the global variables [ x, y, t ]
true
F := FreeGroup("a","b","c","d","e");;
AssignGeneratorVariables(F);;
rred := [ a*b*c^-1, b*c*d^-1, c*d*e^-1, d*e*a^-1, e*a*b^-1 ];;
IsHyperbolic(F, rred, [], 1/10);
#I Assigned the global variables [ a, b, c, d, e ]
Error, PregroupByTable: P5 violated